package com.xiyou.weblog.web.markdown.provider;

import org.commonmark.node.Link;
import org.commonmark.node.Node;
import org.commonmark.renderer.html.AttributeProvider;

import java.util.Map;

public class NofollowLinkAttributeProvider implements AttributeProvider {

    /**
     * 网站域名
     */
    private final static String DOMAIN = "www.xiyou.com";
    @Override
    public void setAttributes(Node node, String s, Map<String, String> map) {
        if (node instanceof Link linkNode) {
            // 获取链接地址
            String href = linkNode.getDestination();
            // 如果链接不是自己域名，则添加 rel="nofollow" 属性
            if (!href.contains(DOMAIN)) {
                map.put("rel", "nofollow");
            }

        }
        /*上述类实现了 AttributeProvider 接口，通过实现其 setAttributes 方法，并对 node 进行判断，若类型为 Link 链接，并且链接不包含我们网站的域名时，则为其添加 rel="nofollow" 属性。*/

        /*
        * 我们只需要给非本网站域名的超链接添加 nofollow 即可，比如你在你的博文中，引用了 redis 的官方网址，则可以添加 nofollow , 防止将博客的权重传递过去。*/
    }
}
